Историята на семейството формати MPEG започва през 1988.Тогава е била събрана група от експерти , наречена “ Moving Pictures Expert Group “ – точно оттука идва абревиатурата MPEG .На български това вероятно трябва да се преведе като “Експертна Група по Кинематография”.Резултат от работата на тази група се появява през 1993 .

Форматът MPEG-1

За да оцените истинските постижения на групата искам да ви припомня че през тези години компютрите не бяха на сегашното ниво и нямаше разработени носители на големи обеми информация.Компютър с 250 МВ харддиск , RAM 4MB , процесор 286 или 386 си беше направо лукс.За пренасяне на информация се ползваха предимно 5-инчовите дискети , а 3,5-инчовите съвсем скоро бяха измислени от SONY .Именно в такива условия на групата е била поставена задачата да намери носител , на който да бъде записан около 1 GB , и този носител да не бъде скъп за да може да се наложи широко сред потребителите.

Точно по него време се появяват CD-ROM дисковете .Въпреки че са били с “внушителен “капацитет , един диск не е побирал един филм но в крайна сметка какво е пречи филма да се запише на два диска?Разбира се, първите CD-ROM устройства са били едноскоростни и затова не се учудвайте на ограничението на максималната скорост на прехвърлянето на данните (bit stream) в MPEG –1.То е 150 Кб/сек , което отговаря на 1-ва скорост на CD-ROM.

Искам да отбележа че възможностите на MPEG-1 не са ограничени до ниската разделителна способност , която сте виждали на VIDEO-CD.Във формата е заложена възможност за поддържане на резолюция до 4095х4095 при 60 херца.Ограничението (Constrained Parameters Bitstream (CPB)) идва от тези 150 Кб/сек ,и всички които са работели по формата са били принудени да да използват резолюции , оптимизирани за CPB.Най-разпространени са два такива формата - SIF 352х240, 30 кадъра в секунда и изрязания формат PAL/SECAM 352х288, 25 кадъра в секунда.

Принципите на компресия в MPEG-1

Тука се спирам на орязания PAL/SECAM по простата причина че SIF е много по-малко разпространен.Въпросния PAL/SECAM съдържа 352 ppl (point per line- точки на линия ) , 288 lpf (line per frame-линии на кадър) и 25 fps (frame per second-кадъра в секунда).За отбелязване е че с изключение на броя на кадрите , стандартния PAL/SECAM притежава 4 пъти по-добри параметри в сравнение с орязания , ползван от MPEG-1.Това е причината да се твърди че VIDEO-CD е 4 пъти по некачествено от обикновеното видео.

Що се отнася за дълбочината на цвета , тука не всичко е просто като в компютърната графика , където за всеки пиксел се падат определен постоянен брой битове . MPEG-1 използва цветовата схема YСbCr където У е яркостната плоскост, Сb и Cr – цветовите плоскости.Тези плоскости се кодират (компресират ) с различна резолюция в няколко варианта:

Вариант на кодиране | Отношение на резолюциите Сb/Y (Сr/Y) по хоризонталата | Отношение на резолюциите Сb/Y (Сr/Y) по вертикалата
4:4:4 | 1:1 | 1:1
4:2:2 | 1:2 | 1:1
4:2:0 | 1:2 | 1:2
4:1:1 | 1:4 | 1:1
4:1:0 | 1:4 | 1:4

Както виждате от таблицата , Сb и Cr практически винаги се кодират с по-малка реолюция от Y. Колкото е по-малка резолюцията на цветните плоскости толкова е по-неестествен цвета във филма.Най-малък по размер , но и най-некачествен ще бъде последния вариант .(Май ще излязат прави продуцентите на “Годзила”: размерът има значение ; -)

Преди кодирането се прави анализ на кадрите , определят се кадрите , които ще бъдат ключови и няма да се променят когато се кодират , и кадрите , при които част от информацията ще се изреже при кодирането .Общо се отделят следните кадри:

1. Кадри тип I - Intra frame. Ключови кадри , които се компресират без изменение

2. Кадри тип P - Predirected frame. При кодирането на тези кадри част от информацията се изрязва.Когато се възпроизвеждат тези кадри се използва информация от предния кадър ( I или P )

3. Кадри тип В - Bidirectional frame. При кодирането им загубите на информация са още по-големи .При възпроизвеждането им се ползва вече информация от два предходни I или P кадъра.В кадрите са именно причината MPEG-1 да има такава компресия , но и не особено добро качество.

При кодирането се образува верижка от кадри от различните типове , примерно в следния ред :

IBBPBBPBBIBBPBBPBB...

Съответно възпроизвеждането на кадрите по номера ще бъде в следния ред: 1423765...

След разбиването на кадрите започва процеса по кодирането им .

С I-кадрите процеса на подготовка се изчерпва с разцепването има на блокове с размер 8х8 пиксела .

За сметка на това за кадрите P и B подготовка та е доста по-сложна .За да могат да се свият максимално тези кадри се използва алгоритъм за предсказване на движение.За входна информация се ползва блок (8х8 пиксела) от текущия кадър и аналогични блокове от предходните кадри ( I или P ) .На изхода на алгоритъма имаме следната информация:

1.Вектор на движение на текущия блок относно предходните

2.разликата между текущия и предходните , която разлика именно ще се компресира.

Всичката останала информация се изхвърля . благодарение на което се постига толкова висок коефициент на компресия , което би било невъзможно без загуби.

Алгоритъма за предсказване на движения също си има недостатъци.Често във филмите има сцени , в които движението е незначително или направо липсва, и възникват кадри (или поне блокове) , при които не може да се ползва алгоритъма и компресирането е пренебрежимо малко, но пък качеството е добро , понеже в тоя случай P и B кадрите са копия на І .При сцени с малко движение картината е добра , но за сметка на това качеството на “бързите” сцени трудно може да се нарече задоволително.

Размерите на рзличните типове кадрите са в съотношение I:P:B как то 15:5:2 .Както виждате , намаляването на обема на видоинформацията е налице още на стадий подготовка за кодиране.

Самото кодиране протича в 3 стадия :

1. Discrete Cosine Transformation - DTC, дискретно преобразование на косинусите , преобразование на Фурие.

2. Quantization - квантоване. Превод на данните от непрекъснат вид в прекъснат

3. Преобразуване на получените блокове в последователност , т.е. от матрична в линейна форма.

При кодиране на блокове или изчислената разлика между блоковете се ползва DTC.Обикновено пикселите в блоковете или самите блокове по някакъв начин са свързани помежду си – например еднообразен фон , еднакво осветление и т.н.Тази връзка се нарича корелация.Алгоритъма DTC , използвайки корелиращи ефекти , преобразува блоковете в честотни компоненти на Фурие.При това част от информацията се губи заради изравняването на силно отделящите се участъци , които не се подчиняват на корелация.

След това влиза в действие алгоритъма Quantization , който оформя Quantization matrix. Quantization matrix – това е матрицата на квантоване , елементи на която са преобразуваните от непрекъснат в прекъснат вид данни, т.е. стойностите на амплитудата на компонентите на Фурие.След формирането на матрицата се разбиват честотните коефициенти на конкретната стойност . като точността им е фиксирана на 8 бита.

На финалния стадии много от коефициентите се нулирват и след това матрицата преминава в линейна форма.

Всички тези преобразувания касаят само образа.Кодирането на звука става с друг кодек .Към момента на създаване на MPEG –1 е имало три кодека - MPEG-1 Layer I, Layer II и Layer 3 ( прочутия МР3).Принципите на кодиране на тези 3 кодека са на основаната на психоакустически модел , който става все по-съвършен и достигна апогей при МР3.

Тука няма да се спирам на аудиокомпресията , само ще засегна въпроса за синхронизацията на двата потока ( видео и аудио ).За синхронизацията им се ползва специален поток данни , наречен System stream. System stream има вграден таймер , който работи на 90 Кхц и съдържа два слоя – системния с таймера и служебната информация за синхронизирането на кадрите с аудиопътеката и компресионния слой с видео и аудиопотоците.

към MPEG-2